diff -up ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.c.opencv3 ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.c
--- ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.c.opencv3	2013-02-24 14:43:22.000000000 +0100
+++ ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.c	2015-07-08 12:44:30.987056878 +0200
@@ -211,8 +211,8 @@ CvSeq* detect_and_draw( IplImage* img, C
 
   double scale = 1.3;
   IplImage* gray = cvCreateImage( cvSize(img->width,img->height), 8, 1 );
-  IplImage* small_img = cvCreateImage( cvSize( cvRound (img->width/scale),
-                                               cvRound (img->height/scale)),
+  IplImage* small_img = cvCreateImage( cvSize( cvRound ((double)img->width/scale),
+                                               cvRound ((double)img->height/scale)),
                                        8, 1 );
   int i;
 
diff -up ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp.opencv3 ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp
--- ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp.opencv3	2013-02-24 14:43:22.000000000 +0100
+++ ./frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp	2015-07-08 12:48:32.754615885 +0200
@@ -259,11 +259,11 @@ private:
     {
         double scale = this->scale == 0? 1.0 : this->scale;
         CvScalar colors[5] = {
-            {{cvRound(color[0].r * 255), cvRound(color[0].g * 255), cvRound(color[0].b * 255), cvRound(alpha * 255)}},
-            {{cvRound(color[1].r * 255), cvRound(color[1].g * 255), cvRound(color[1].b * 255), cvRound(alpha * 255)}},
-            {{cvRound(color[2].r * 255), cvRound(color[2].g * 255), cvRound(color[2].b * 255), cvRound(alpha * 255)}},
-            {{cvRound(color[3].r * 255), cvRound(color[3].g * 255), cvRound(color[3].b * 255), cvRound(alpha * 255)}},
-            {{cvRound(color[4].r * 255), cvRound(color[4].g * 255), cvRound(color[4].b * 255), cvRound(alpha * 255)}},
+            CvScalar(cvRound(color[0].r * 255), cvRound(color[0].g * 255), cvRound(color[0].b * 255), cvRound(alpha * 255)),
+            CvScalar(cvRound(color[1].r * 255), cvRound(color[1].g * 255), cvRound(color[1].b * 255), cvRound(alpha * 255)),
+            CvScalar(cvRound(color[2].r * 255), cvRound(color[2].g * 255), cvRound(color[2].b * 255), cvRound(alpha * 255)),
+            CvScalar(cvRound(color[3].r * 255), cvRound(color[3].g * 255), cvRound(color[3].b * 255), cvRound(alpha * 255)),
+            CvScalar(cvRound(color[4].r * 255), cvRound(color[4].g * 255), cvRound(color[4].b * 255), cvRound(alpha * 255)),
         };
         
         for (int i = 0; i < (objects ? objects->total : 0); i++)
@@ -287,14 +287,14 @@ private:
                 }
             case 1:
                 {
-                    CvBox2D box = {{center.x, center.y}, {r->width / scale, (r->height / scale) * 1.2}, 90};
+                    CvBox2D box = CvBox2D(CvPoint2D32f(center.x, center.y), CvSize2D32f(r->width / scale, (r->height / scale) * 1.2), 90);
                     cvEllipseBox(image, box, colors[i % 5], thickness, linetype);
                     break;
                 }
             case 2:
                 {
-                    CvPoint pt1 = {r->x / scale, r->y / scale};
-                    CvPoint pt2 = {(r->x + r->width) / scale, (r->y + r->height) / scale};
+                    CvPoint pt1 = CvPoint(r->x / scale, r->y / scale);
+                    CvPoint pt2 = CvPoint((r->x + r->width) / scale, (r->y + r->height) / scale);
                     cvRectangle(image, pt1, pt2, colors[i % 5], thickness, linetype);
                     break;
                 }
